// 数组API：1.参数 2.返回值 3.修补修改原数组

// push方法 向数组末尾添加一个或者多个元素
// 参数：要添加的数组元素 返回值：新数组的长度 修改原数组
// var arr = ['tom', 'jack', 'zack', 'lisi']
// var res = arr.push('terry', 'larry')
// console.log(res, arr);

// pop方法 
// 参数：无 返回值：返回最后一项删除的数组元素 修改原数组 
// var arr = ['tom', 'jack', 'zack', 'lisi']
// var res = arr.pop()
// console.log(res, arr);

// 重构pop方法
// var arr = ['tom', 'jack', 'zack', 'lisi']
// Array.prototype.myPop = function () {
//     if (this.length > 0) {
//         // 由于myPop方法被arr数组实例调用 this指向数组实例 this-->arr
//         var last = this[this.length - 1]// 最后一项
//         this.length--
//         return last
//     } else {
//         return undefined
//     }
// }

// var res = arr.myPop()
// console.log(res, arr);

// 重构push方法
// var arr = ['tom', 'jack', 'zack', 'lisi']
// Array.prototype.myPush = function () {
//     // 循环遍历实际参数  将实参依次添加到原数组的末尾
//     for (let i = 0; i < arguments.length; i++) {
//         this[this.length] = arguments[i]
//     }
//     return this.length
// }
// var res = arr.myPush('terry', 'larry')
// console.log(res, arr);

// shift方法 删除数组第一项元素 从头开始
// 参数：无 返回值：返回第一项数组元素 修改原数组
// var arr = [1, 2, 3, 4, 5]
// var res = arr.shift()
// console.log(res, arr);

// unshift 从数组开始添加一个或者多个数组元素
// 参数：要添加的数组元素 返回值：返回新数组长度 修改原数组
var arr = [1, 2, 3, 4, 5]
var res = arr.unshift('terry', 'larry')
console.log(res, arr);
